package com.gmd.cita.action;

import java.util.Date;
import java.util.List;

import com.gmd.cita.service.CitaService;
import com.gmd.historiaclinica.service.HistoClinicaService;
import com.gmd.model.Cita;
import com.gmd.model.Historiaclinica;
import com.gmd.model.Medico;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class GenerarCitaAction extends ActionSupport implements ModelDriven<Cita> {
	
	private static final long serialVersionUID = 1L;
	
	private CitaService service;
	private HistoClinicaService serviceHC;
	
	private Cita cita;
	
	private List<Medico> medicos;
	private String mensaje;
	
	public GenerarCitaAction(){
		if(cita == null){
			cita = new Cita();
		}
		cita = new Cita();
		service = new CitaService();
		serviceHC = new HistoClinicaService();
		
		int id = service.generaCodCita();
		cita.setIdcita(id);
		cita.setFechcre(new Date());
		
		medicos = service.listarMedicos();
		
	}
	
	//Methods
	
	public String execute(){
		return SUCCESS;
	}
	
	public String paciente(){
		int id = cita.getHistoriaclinica().getIdhistoriaclinica();
		if( id != 0){
			Historiaclinica hc = serviceHC.buscarHistoClinica(id);
			if(hc != null){
				cita.setHistoriaclinica(hc);
				mensaje = "";
				System.out.println("!!!!!!!!!!!!!!!!! "+ mensaje);
			}
		}else{
			mensaje = "No se encontro paciente";
			System.out.println("!!!!!!!!!!!!!!!!! "+ mensaje);
		}
		addActionError(mensaje);
		return "salir";
	}
	
	public String registrar(){
		String retorno = SUCCESS;
		try {
			service.ingresarCita(cita);
			addActionMessage("La cita se genero correctamente");
		} catch (Exception e) {
			addActionMessage(e.getMessage());
			retorno = ERROR;
		}
		return retorno;
	}
	
	public String salir(){
		return "salir";
	}
	
	//Implements Model Driven

	@Override
	public Cita getModel() {
		return cita;
	}

	//Getters and Setters
	
	public Cita getCita() {
		return cita;
	}

	public void setCita(Cita cita) {
		this.cita = cita;
	}

	public List<Medico> getMedicos() {
		return medicos;
	}

	public void setMedicos(List<Medico> medicos) {
		this.medicos = medicos;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}
	
}
